home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- #
- # This shell script should be used to create a correct makefile from
- # provided Imakefiles. Set the paths below to reflect the imake-setup for your
- # system.
- #
- # Usage :
- #
- # m++mkmf [ -Dsymbol=value ] [ -Idirectory ]
- # [ -debug ]
- # [ -verbose ]
- # [ -shared ]
- # [ -f imakefile ]
- # [ -T template ]
- #
- # meaning:
- #
- # -Dsymbol=value : define symbol
- # -debug : create Makefile where objects are compiled with
- # debugflags
- # -Idirectory : add additional directories to searchpath
- # -verbose : echo arguments passed to imake
- # -shared : create Makefile for creating shared library
- # -f imakefile : Imakefile is now called 'imakefile'
- # -T template : use a different template name.
- #>
-
- VERBOSE="off"
- WANT_DEBUG=
- WANT_SHARED_LIBRARY=
- MPP_IMAKE_FILE=Imakefile
- REGULAR_IMAKE_DEFINES=-DUseInstalled
- OTHER_DEFINES=
- OTHER_INCLUDES=
- IMAKE_CONFIG_PATH=/usr/lib/X11/config # regular path to config files
- IMAKE_MPP_CONFIG_PATH=/user/rvloon/mtf/motif++/config # path to Motif++ config files
-
- IMAKE_MPP_DEFINES= #
- IMAKE_TEMPLATE=
- IMAKE_INCLUDE_FILE=-f$IMAKE_MPP_CONFIG_PATH/Motif++.tmpl
- TOPDIR="."
- CURDIR="."
- TOPDIR_SET_BY_DEFINE="*"
- CURDIR_SET_BY_DEFINE="*"
-
- while [ $# != 0 ]
- do
- case $1 in
- -DTOPDIR*) TOPDIR_SET_BY_DEFINE=`echo $1 | sed 's/-DTOPDIR=//g'` ; shift ;;
- -DCURDIR*) CURDIR_SET_BY_DEFINE=`echo $1 | sed 's/-DCURDIR=//g'` ; shift ;;
- -DUseInstalled*) shift;;
- -D*) OTHER_DEFINES="${OTHER_DEFINES} $1"
- shift ;;
- -I*) OTHER_INCLUDES="${OTHER_INCLUDES} $1"
- shift ;;
- -d*) WANT_DEBUG=-DWantDebug
- shift ;;
- -s*) WANT_SHARED_LIBRARY=-DWantSharedLibrary
- shift ;;
- -v*) VERBOSE="on"
- shift ;;
- -f*) MPP_IMAKE_FILE=$2
- shift
- shift ;;
- -T*) IMAKE_INCLUDE_FILE=-f$2
- shift
- shift ;;
- *) if [ "$TOPDIR" = "." ]
- then
- TOPDIR=$1
- shift
- else
- if [ "$CURDIR" = "." ]
- then
- CURDIR=$1
- shift
- else
- echo "m++mkmf: option $1 not understood. ignored."
- shift
- fi
- fi
- ;;
- esac
- done
-
- if [ "$TOPDIR_SET_BY_DEFINE" != "*" ]
- then
- TOPDIR="$TOPDIR_SET_BY_DEFINE"
- fi
-
- if [ "$CURDIR_SET_BY_DEFINE" != "*" ]
- then
- CURDIR="$CURDIR_SET_BY_DEFINE"
- fi
-
- IMAKE_ARGS="${OTHER_INCLUDES} ${OTHER_DEFINES} -I$IMAKE_CONFIG_PATH -I$IMAKE_MPP_CONFIG_PATH $REGULAR_IMAKE_DEFINES $IMAKE_MPP_DEFINES $IMAKE_TEMPLATE $IMAKE_INCLUDE_FILE $WANT_SHARED_LIBRARY $WANT_DEBUG -DTOPDIR=${TOPDIR} -DCURDIR=${CURDIR}"
-
- # mimic xmkmf behaviour.
-
- if [ -f Makefile ]; then
- if [ $VERBOSE = "on" ]
- then
- echo mv Makefile Makefile.bak
- fi
- mv Makefile Makefile.bak
- fi
-
- if [ $VERBOSE = "on" ]
- then
- echo imake ${IMAKE_ARGS}
- fi
-
- TMPFILE=/tmp/Imakefile.$$
-
- case `basename $0` in
- xmkmf) awk <${MPP_IMAKE_FILE} ' /^# *include.*/ ||
- /^# *define/ ||
- /^# *undef/ ||
- /^# *ifdef/ ||
- /^# *else/ ||
- /^# *endif/ ||
- /^# *if/ { print ; next }
- /^#.*/ { printf "XCOMM %s\n",
- substr($0,2) ; next }
- { print }' >$TMPFILE
- MPP_IMAKE_FILE=$TMPFILE ;;
- *) ;;
- esac
-
- imake ${IMAKE_ARGS} -DMPPImakefile=\"${MPP_IMAKE_FILE}\" -DOtherImakeDefines="$WANT_DEBUG ${OTHER_DEFINES}" -DOtherImakeIncludes="${OTHER_IMAKE_INCLUDES}"
-
- if [ -f $TMPFILE ]
- then
- rm -f $TMPFILE
- fi
-